iT邦幫忙

2024 iThome 鐵人賽

DAY 20
0

經過昨天iptables的介紹後,我們可以更了解iptables主要的功用以及其相關的知識。接著今天就來實際設定iptables的規則。

在先前我們已有設定各虛擬機的網路介面卡,因此現在為了使 第3臺 Kali 能夠連上外部網路,我們並須讓送過來的風包含傳出去的封包能夠被接,或正確轉送。我們可以做以下設定:

iptables防火牆 NAT表設定

由於Kali 第1張為橋接器網路卡(eth0),第2張為NAT網路卡(eth1),因此我們需要讓所有從eth0網卡出去的封包都能夠被允許使得 第3臺虛擬機 Kali-2 的封包能夠正確向外傳輸,那該怎麼做呢?

我們可以當內部網路的主機通過 eth0 網路介面訪問外部網路時,將封包的源 IP 地址改為防火牆的外部網路介面的 IP 地址,從而允許內部網路的主機能夠通過防火牆訪問外部網路。這是一種常見的網路地址轉換(NAT)設定,用於實現私有網路的上網功能。

因此我們可以在Kali設定以下指令
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
image

這條指令是在設定 iptables 的規則,具體來說,它是在設定網路地址轉換(NAT)的規則。讓我們來詳細解釋一下這條指令的各個部分:

  • sudo: 這個指令表示以系統管理員(root)的權限執行後面的命令。
  • iptables: 這是 Linux 系統的防火牆工具,用於設定網路封包過濾規則。
  • -t nat: 這個選項表示要操作的是 iptables 的 NAT 表。NAT 表主要用於處理網路地址轉換(NAT)的規則1。
  • -A POSTROUTING: 這個選項表示要在 POSTROUTING 鏈的末尾添加一條規則。POSTROUTING 鏈用於處理已經決定路由的封包,通常用於源地址轉換(SNAT)。
  • -o eth0: 這個選項表示只有當封包的出口(出站)網路介面是 eth0 時,這條規則才會被應用。
  • -j MASQUERADE: 這個選項表示當這條規則被觸發時,要執行的動作是 MASQUERADE。MASQUERADE 是一種特殊的源地址轉換(SNAT),它會將封包的源 IP 地址改為防火牆的外部網路介面的 IP 地址。這樣,對外部網路來說,所有從內部網路發出的封包都似乎是直接來自防火牆,從而隱藏了內部網路的真實 IP 地址。

同理也要對 第2臺虛擬機 Mint 做相同的設定,由於Mint第1張網路介面卡為NAT網路(enp0s3),第2張為內部網路(enp0s8),因此可以使用以下指令
sudo iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE
image

iptables防火牆封包轉發設定

為了使傳送到或傳出自 第3臺 Kali-2 的封包能夠正確被轉發我們可以在Kali做以下指令設定

sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

image

這條指令是在設定 iptables 的規則,具體來說,它是在設定數據包轉發的規則。讓我們來詳細解釋一下這條指令的各個部分:

  • -A FORWARD: 這個選項表示要在 FORWARD 鏈的末尾添加一條規則。FORWARD 鏈用於處理需要通過防火牆發送給其他地址的數據包(轉發)¹。
  • -i eth0 -o eth1: 這兩個選項表示只有當封包的入口網路介面是 eth0,並且出口網路介面是 eth1 時,這條規則才會被應用。
  • -m state --state RELATED,ESTABLISHED: 這個選項表示只有當封包的狀態是 RELATEDESTABLISHED 時,這條規則才會被應用。RELATED 狀態表示封包與已經建立的連接有關,ESTABLISHED 狀態表示封包是已經建立的連接的一部分。
  • -j ACCEPT: 這個選項表示當這條規則被觸發時,要執行的動作是 ACCEPTACCEPT 動作表示允許封包通過¹。

總的來說,這條指令的作用是:當一個封包從 eth0 介面進入,並且需要從 eth1 介面轉發出去,且該封包與已經建立的連接有關或是已經建立的連接的一部分時,允許該封包通過。這是一種常見的防火牆設定,用於實現網路封包的轉發功能。

同理對Mint也做一樣的設定,可以使用以下指令。

sudo iptables -A FORWARD -i enp0s3 -o enp0s8 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i enp0s8 -o enp0s3 -j ACCEPT

image

測試 Kali-2 連線

回到kali-2虛擬機重新輸入ping -c 4 www.google.com,確認IP轉發成功
image


上一篇
Day19 - iptable防火牆規則介紹
下一篇
Day21 - 路徑追蹤(trace route)
系列文
Packet流量密碼:透析虛擬化網路的封包世界30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言